don't try to fetch the child back, since we do know that it is already
authorKristian Rietveld <kris@gtk.org>
Tue, 18 Nov 2003 19:57:14 +0000 (19:57 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Tue, 18 Nov 2003 19:57:14 +0000 (19:57 +0000)
Tue Nov 18 20:51:38 2003  Kristian Rietveld  <kris@gtk.org>

* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_row_deleted): don't
try to fetch the child back, since we do know that it is already
gone by now (#126493, Marco Pesenti Gritti).

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreemodelfilter.c

index 7dc47252bad9a461e2cc05cbba6b286ffd7ede5d..6033c0b0f60dade47836122995d22fe526a4320b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Nov 18 20:51:38 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_row_deleted): don't
+       try to fetch the child back, since we do know that it is already
+       gone by now (#126493, Marco Pesenti Gritti).
+
 Tue Nov 18 19:47:59 2003  Kristian Rietveld  <kris@gtk.org>
 
        Fixes based on comments from Owen Taylor, #125264.
index 7dc47252bad9a461e2cc05cbba6b286ffd7ede5d..6033c0b0f60dade47836122995d22fe526a4320b 100644 (file)
@@ -1,3 +1,9 @@
+Tue Nov 18 20:51:38 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_row_deleted): don't
+       try to fetch the child back, since we do know that it is already
+       gone by now (#126493, Marco Pesenti Gritti).
+
 Tue Nov 18 19:47:59 2003  Kristian Rietveld  <kris@gtk.org>
 
        Fixes based on comments from Owen Taylor, #125264.
index 7dc47252bad9a461e2cc05cbba6b286ffd7ede5d..6033c0b0f60dade47836122995d22fe526a4320b 100644 (file)
@@ -1,3 +1,9 @@
+Tue Nov 18 20:51:38 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_row_deleted): don't
+       try to fetch the child back, since we do know that it is already
+       gone by now (#126493, Marco Pesenti Gritti).
+
 Tue Nov 18 19:47:59 2003  Kristian Rietveld  <kris@gtk.org>
 
        Fixes based on comments from Owen Taylor, #125264.
index 7dc47252bad9a461e2cc05cbba6b286ffd7ede5d..6033c0b0f60dade47836122995d22fe526a4320b 100644 (file)
@@ -1,3 +1,9 @@
+Tue Nov 18 20:51:38 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_row_deleted): don't
+       try to fetch the child back, since we do know that it is already
+       gone by now (#126493, Marco Pesenti Gritti).
+
 Tue Nov 18 19:47:59 2003  Kristian Rietveld  <kris@gtk.org>
 
        Fixes based on comments from Owen Taylor, #125264.
index 7dc47252bad9a461e2cc05cbba6b286ffd7ede5d..6033c0b0f60dade47836122995d22fe526a4320b 100644 (file)
@@ -1,3 +1,9 @@
+Tue Nov 18 20:51:38 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodelfilter.c (gtk_tree_model_filter_row_deleted): don't
+       try to fetch the child back, since we do know that it is already
+       gone by now (#126493, Marco Pesenti Gritti).
+
 Tue Nov 18 19:47:59 2003  Kristian Rietveld  <kris@gtk.org>
 
        Fixes based on comments from Owen Taylor, #125264.
index d168c763eb238dc1e6e0c4af92ce97e212b68ba8..f8827691fea3228cdfbe50a31fd60bbd0f87aa26 100644 (file)
@@ -1430,88 +1430,79 @@ gtk_tree_model_filter_row_deleted (GtkTreeModel *c_model,
                                                                 c_path,
                                                                 FALSE,
                                                                 FALSE);
+
   if (!path)
     {
-      path = gtk_real_tree_model_filter_convert_child_path_to_path (filter,
-                                                                    c_path,
-                                                                    FALSE,
-                                                                    TRUE);
+      /* fixup the offsets */
+      GtkTreePath *real_path;
 
-      if (!path)
-        {
-          /* fixup the offsets */
-          GtkTreePath *real_path;
+      if (!filter->priv->root)
+        return;
 
-          if (!filter->priv->root)
-            return;
+      level = FILTER_LEVEL (filter->priv->root);
 
-          level = FILTER_LEVEL (filter->priv->root);
+      /* subtract vroot if necessary */
+      if (filter->priv->virtual_root)
+        {
+          real_path = gtk_tree_model_filter_remove_root (c_path,
+                                                         filter->priv->virtual_root);
+          /* we don't handle this */
+          if (!real_path)
+            return;
+        }
+      else
+        real_path = gtk_tree_path_copy (c_path);
 
-          /* subtract vroot if necessary */
-          if (filter->priv->virtual_root)
+      i = 0;
+      if (gtk_tree_path_get_depth (real_path) - 1 >= 1)
+        {
+          while (i < gtk_tree_path_get_depth (real_path) - 1)
             {
-              real_path = gtk_tree_model_filter_remove_root (c_path,
-                                                             filter->priv->virtual_root);
-              /* we don't handle this */
-              if (!real_path)
-                return;
-            }
-          else
-            real_path = gtk_tree_path_copy (c_path);
+              gint j;
 
-          i = 0;
-          if (gtk_tree_path_get_depth (real_path) - 1 >= 1)
-            {
-              while (i < gtk_tree_path_get_depth (real_path) - 1)
+              if (!level)
                 {
-                  gint j;
-
-                  if (!level)
-                    {
-                      /* we don't cover this */
-                      gtk_tree_path_free (real_path);
-                      return;
-                    }
-
-                  elt = bsearch_elt_with_offset (level->array,
-                                                 gtk_tree_path_get_indices (real_path)[i],
-                                                 &j);
-
-                  if (!elt || !elt->children)
-                    {
-                      /* parent is filtered out, so no level */
-                      gtk_tree_path_free (real_path);
-                      return;
-                    }
-
-                  level = elt->children;
-                  i++;
+                  /* we don't cover this */
+                  gtk_tree_path_free (real_path);
+                  return;
                 }
-            }
 
-          offset = gtk_tree_path_get_indices (real_path)[gtk_tree_path_get_depth (real_path) - 1];
-          gtk_tree_path_free (real_path);
+              elt = bsearch_elt_with_offset (level->array,
+                                             gtk_tree_path_get_indices (real_path)[i],
+                                             &j);
 
-          if (!level)
-            return;
+              if (!elt || !elt->children)
+                {
+                  /* parent is filtered out, so no level */
+                  gtk_tree_path_free (real_path);
+                  return;
+                }
 
-          /* we need:
-           * - the offset of the removed item
-           * - the level
-           */
-          for (i = 0; i < level->array->len; i++)
-            {
-              elt = &g_array_index (level->array, FilterElt, i);
-              if (elt->offset > offset)
-                elt->offset--;
-              if (elt->children)
-                elt->children->parent_elt = elt;
+              level = elt->children;
+              i++;
             }
+        }
 
-          return;
+      offset = gtk_tree_path_get_indices (real_path)[gtk_tree_path_get_depth (real_path) - 1];
+      gtk_tree_path_free (real_path);
+
+      if (!level)
+        return;
+
+      /* we need:
+       * - the offset of the removed item
+       * - the level
+       */
+      for (i = 0; i < level->array->len; i++)
+        {
+          elt = &g_array_index (level->array, FilterElt, i);
+          if (elt->offset > offset)
+            elt->offset--;
+          if (elt->children)
+            elt->children->parent_elt = elt;
         }
 
-      emit_signal = FALSE;
+      return;
     }
 
   gtk_tree_model_get_iter (GTK_TREE_MODEL (data), &iter, path);